--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lang/README.ru.md v4.5.0-rc.5 (eee4a4d7) Text, 20.69 KB
Reticulum MeshChatX
Существенно доработанный и функционально расширенный форк Reticulum MeshChat от Liam Cottle.
Этот проект независим от оригинального Reticulum MeshChat и не связан с ним.
• Сайт: meshchatx.com
• Исходный код: git.quad4.io/RNS-Things/MeshChatX
• Официальное зеркало: github.com/Quad4/MeshChatX — пока также используется для сборок Windows и macOS.
• Журнал изменений: CHANGELOG.md
• TODO: Boards
Важные отличия от Reticulum MeshChat
• Используется LXST
• Peewee ORM заменён на прямой SQL
• Axios заменён на нативный T383838fetch
• Electron 41.x (встроенная среда Node 24)
• Колёса T383838.whl с веб-сервером и встроенным фронтендом для разных сценариев развёртывания
• i18n
• PNPM и Poetry для зависимостей
│ [!WARNING] MeshChatX не гарантирует совместимость данных со старыми версиями Reticulum MeshChat.
│ Сделайте резервную копию перед миграцией или тестированием.
│ [!WARNING] Устаревшие системы пока не полностью поддерживаются. Текущие требования: Python T383838>=3.11
│ и Node T383838>=24 (Electron 41 соответствует Node 24; поле T383838engines в T383838package.json и CI на той же
│ линии).
Требования
• Python T383838>=3.11 (из T383838pyproject.toml)
• Node.js T383838>=24 (из T383838package.json, поле T383838engines)
• pnpm T38383810.33.0 (из T383838package.json, поле T383838packageManager)
• Poetry (используется в T383838Taskfile.yml и CI)
T282828
task install
task lint:all
task test:all
task build:all
Способы установки
Выберите способ в соответствии со средой и форматом пакета.
┌─────────────────────┬─────────────────────┬──────────────┬───────────────────────────────────────┐
│ Метод │ Включает фронтенд │ Архитектуры │ Лучше всего для │
├─────────────────────┼─────────────────────┼──────────────┼───────────────────────────────────────┤
│ Docker-образ │ Да │ T383838linux/amd64… │ Быстрый запуск на серверах Linux │
│ Python wheel (T383838.whl) │ Да │ Любая архит… │ Безголовый/веб-сервер без сборки Node │
│ Linux AppImage │ Да │ T383838x64, T383838arm64 │ Портативное использование на ПК │
│ Debian-пакет (T383838.deb) │ Да │ T383838x64, T383838arm64 │ Установка на Debian/Ubuntu │
│ RPM-пакет (T383838.rpm) │ Да │ Зависит от … │ Fedora/RHEL/openSUSE │
│ Из исходников │ Собирается локально │ Архитектура… │ Разработка и кастомные сборки │
└─────────────────────┴─────────────────────┴──────────────┴───────────────────────────────────────┘
Примечания:
• Релизный workflow явно собирает Linux T383838x64 и T383838arm64 AppImage + DEB.
• RPM также собирается при попытке и загружается при успехе.
Быстрый старт: Docker
T282828
docker compose up -d
Compose-файл по умолчанию:
• T383838127.0.0.1:8000 на хосте -> порт T3838388000 контейнера
• T383838./meshchat-config -> T383838/config для данных
Если возникают ошибки прав доступа:
T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Установка из релизных артефактов
1) Linux AppImage (x64/arm64)
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.AppImage из релизов.
2. Сделайте исполняемым и запустите:
T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu T383838.deb (x64/arm64)
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.deb.
2. Установите:
T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) RPM-системы
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.rpm, если есть в релизе.
2. Установите:
T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (T383838.whl)
В релизных wheel включены собранные веб-ресурсы.
T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless
T383838pipx также поддерживается:
T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Запуск из исходников (режим веб-сервера)
Для разработки или локальной сборки.
T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm config Tffa657set verify-store-integrity Tffa657true
pnpm install --frozen-lockfile
pip install Ta5d6ff"poetry==2.3.4"
poetry check --lock
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1
Пояснения к командам установки:
• T383838pnpm install --frozen-lockfile запрещает обновление T383838pnpm-lock.yaml и завершится с ошибкой, если lock-файл не соответствует T383838package.json. Это исключает скрытую установку неожиданной upstream-версии.
• T383838verify-store-integrity=true уже задан в T383838.npmrc проекта; явный T383838pnpm config set дополнительно ужесточает пользовательскую конфигурацию.
• Lifecycle-скрипты (T383838preinstall/T383838postinstall) по умолчанию заблокированы в pnpm v10+. Скрипты установки могут запускать только пакеты из T383838pnpm.onlyBuiltDependencies в T383838package.json (сейчас это T383838electron, T383838electron-winstaller, T383838esbuild, T383838protobufjs).
• T383838poetry check --lock сразу падает, если T383838poetry.lock не синхронизирован с T383838pyproject.toml; затем T383838poetry install ставит зависимости только из lock-файла.
• Для строгой установки Poetry только из lock-файла зафиксируйте версию Poetry через T383838pip install "poetry==2.3.4", как это делает CI.
Если вы намеренно хотите обновить зависимости, выполните T383838pnpm update / T383838poetry update отдельным коммитом и проверьте diff lock-файлов до пуша.
Запуск в песочнице (Linux)
Чтобы запускать нативный T383838meshchatx (псевдоним: T383838meshchat) с дополнительной изоляцией файловой системы, можно использовать Firejail или Bubblewrap (T383838bwrap), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, Poetry, USB-serial) в:
Та же страница отображается во встроенной Документации (документация MeshChatX), когда она отдаётся из T383838meshchatx-docs.
Linux на ПК: шрифты эмодзи
Выбор эмодзи отображает стандартные Unicode-эмодзи системными шрифтами (Electron/Chromium). Если вместо них пустые квадраты («тофу»), установите пакет цветных эмодзи и перезапустите приложение.
┌────────────────────────────┬──────────────────────────────────────────────────────────────────┐
│ Семейство (примеры) │ Пакет │
├────────────────────────────┼──────────────────────────────────────────────────────────────────┤
│ Arch Linux, Artix, Manjaro │ T383838noto-fonts-emoji (T383838sudo pacman -S noto-fonts-emoji) │
│ Debian, Ubuntu │ T383838fonts-noto-color-emoji (T383838sudo apt install fonts-noto-color-emoji) │
│ Fedora │ T383838google-noto-emoji-color-fonts │
└────────────────────────────┴──────────────────────────────────────────────────────────────────┘
После установки при необходимости выполните T383838fc-cache -fv. Опционально: T383838noto-fonts для лучшего покрытия символов на минимальных установках.
Сборка настольных пакетов из исходников
Скрипты заданы в T383838package.json и T383838Taskfile.yml.
Linux x64 AppImage + DEB
T282828
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
T282828
pnpm run dist:linux-arm64
RPM
T282828
pnpm run dist:rpm
Через Task:
T282828
task dist:fe:rpm
Поддержка архитектур
• Образ Docker: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (скрипты сборки есть)
• macOS: скрипты сборки (T383838arm64, T383838universal) для локальных сред
• Android: нативные APK — ABI T383838arm64-v8a, T383838x86_64, плюс universal
Android
MeshChatX поддерживает нативные Android APK (не только Termux).
Сборка APK из исходников
Из корня репозитория:
T282828
T8b949e# 1) Собрать колёса Chaquopy для android/app/build.gradle
bash scripts/build-android-wheels-local.sh
T8b949e# 2) Собрать slim APK по умолчанию (universal: один APK на flavor и тип сборки)
Tffa657cd android
./gradlew --no-daemon :app:assembleSlimDebug :app:assembleSlimRelease
Выходы определяются product flavors T383838slim / T383838full (размер дерева Python) и ABI-упаковкой T383838universal (по умолчанию) или T383838split (см. T383838android/app/build.gradle).
При T383838-PmeshchatxAbiPackaging=universal (по умолчанию) один APK содержит все выбранные ABI.
Отладка (T383838android/app/build/outputs/apk/slim/debug/):
• T383838app-slim-debug.apk
Релиз (T383838android/app/build/outputs/apk/slim/release/):
• T383838app-slim-release-unsigned.apk
Для полного Python-бандла: T383838:app:assembleFullDebug или T383838:app:assembleFullRelease.
Примечания:
• Релизные артефакты по умолчанию не подписаны, если не настроена подпись.
• Для одной сборки, например: T383838:app:assembleSlimDebug или T383838:app:assembleSlimRelease.
• ABI: T383838-PmeshchatxAbis или T383838MESHCHATX_ABIS; упаковка: T383838-PmeshchatxAbiPackaging или T383838MESHCHATX_ABI_PACKAGING.
• Дерево T383838meshchatx/ для Chaquopy: T383838slim синхронизируется в T383838src/slim/python/, T383838full в T383838src/full/python/. Подробнее в android/README.md.
Дополнительная документация:
Конфигурация
┌────────────────────────┬──────────────────────────────────────┬──────────────┬───────────────────┐
│ Аргумент │ Переменная окружения │ По умолчанию │ Описание │
├────────────────────────┼──────────────────────────────────────┼──────────────┼───────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Адрес привязки в… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Порт веб-сервера │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Отключить HTTPS │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (нет) │ Пути к PEM-серти… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (нет) │ Уровень лога сте… │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Не открывать бра… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Базовая аутентиф… │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Каталог данных │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ авто/bundled │ Каталог фронтенд… │
└────────────────────────┴──────────────────────────────────────┴──────────────┴───────────────────┘
Ветки
┌────────┬────────────────────────────────────────────────────────────────────┐
│ Ветка │ Назначение │
├────────┼────────────────────────────────────────────────────────────────────┤
│ T383838master │ Стабильные релизы. Только код для продакшена. │
│ T383838dev │ Активная разработка. Возможны нестабильные или неполные изменения. │
└────────┴────────────────────────────────────────────────────────────────────┘
Разработка
Типичные задачи из T383838Taskfile.yml:
T282828
task install
task lint:all
task test:all
task build:all
Сокращения T383838Makefile:
┌──────────────┬─────────────────────────────────────────┐
│ Команда │ Описание │
├──────────────┼─────────────────────────────────────────┤
│ T383838make install │ Установить зависимости pnpm и poetry │
│ T383838make run │ Запуск MeshChatX через poetry │
│ T383838make build │ Сборка фронтенда │
│ T383838make lint │ eslint и ruff │
│ T383838make test │ Тесты фронтенда и бэкенда │
│ T383838make clean │ Удалить артефакты сборки и node_modules │
└──────────────┴─────────────────────────────────────────┘
Версионирование
Текущая версия в репозитории: T3838384.5.0.
• Источник версии JS/Electron — T383838package.json.
• T383838meshchatx/src/version.py синхронизируется из T383838package.json:
T282828
pnpm run version:sync
Для согласованных релизов выравнивайте поля версий где нужно (T383838package.json, T383838pyproject.toml, T383838meshchatx/__init__.py).
Безопасность
• Встроенные проверки целостности и HTTPS/WSS по умолчанию в приложении
• CI-сканирование в T383838.gitea/workflows/
Добавление языка
Обнаружение локали происходит автоматически. Добавьте новый файл в T383838meshchatx/src/frontend/locales/ (например T383838xx.json) с теми же ключами, что и в T383838en.json, и полем T383838_languageName в начале для подписи в селекторе языка. Можно скопировать T383838en.json и перевести всё вручную; автоматическая генерация (Argos и т. п.) необязательна и не требуется.
Исправления и переводы от людей приветствуются. Улучшения существующих файлов локали или полностью ручной перевод можно прислать через pull request или issue в исходном репозитории или на зеркале GitHub.
По желанию: черновик через Argos Translate -- если нужен машинный первый проход из T383838en.json, можно использовать T383838scripts/argos_translate.py. Он обрабатывает форматирование и помогает защитить переменные интерполяции (например T383838{count}).
T282828
T8b949e# Установите argostranslate, если вы еще этого не сделали
pip install argostranslate
T8b949e# Запустите скрипт перевода
python scripts/argos_translate.py --from en --to xx --input meshchatx/src/frontend/locales/en.json --output meshchatx/src/frontend/locales/xx.json --name Ta5d6ff"Название вашего языка"
После машинного черновика имеет смысл проверить грамматику, контекст и тон с помощью LLM или человека (формальный или неформальный стиль).
Проверьте совпадение ключей с помощью: T383838pnpm test -- tests/frontend/i18n.test.js --run
Никаких других изменений в коде не требуется. Приложение, селектор языка и тесты обнаруживают локали из каталога T383838meshchatx/src/frontend/locales/ во время сборки.
Авторы
• Liam Cottle — оригинальный Reticulum MeshChat
• RFnexus — парсер Micron (JavaScript)
• markqvist — Reticulum, LXMF, LXST
Лицензия
Собственные части проекта лицензированы по 0BSD.
Оригинальные upstream-части, унаследованные от MeshChat, остаются под MIT.
Полный текст и уведомления см. в ../LICENSE.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────